package com.ali.config;

import feign.Logger;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * OpenFeign配置
 */
@Configuration
public class OpenFeignConfig {
    /**
     * 日志打印
     * NONE：不打印日志
     * BASIC：请求方法，URL，响应状态，执行时间
     * HEADERS：请求方法，URL，响应状态，执行时间，请求头，响应头
     * FULL：请求方法，URL，响应状态，执行时间，请求头，响应头，请求正文，请求元数据，响应正文，响应元数据
     */
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

    /**
     * 超时重试机制
     */
    @Bean
    public Retryer MyRetryer() {
        //默认不开启
//        return Retryer.NEVER_RETRY;

        //初始间隔时间为100毫秒，最大间隔时间为1秒，最大请求次数为3
        return new Retryer.Default(100, 1, 3);
    }
}
